﻿#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
//回答别人问题写的代码
//int main()
//{
//	int arr[5] = { 0 };
//	int i = 0;
//	for (i = 0; i < 5; i++)
//	{
//		scanf("%d", &arr[i]);//输入
//	}
//	int max = arr[0];//假设这个第一个数是最大的
//	for (i = 1; i < 5; i++)
//	{
//		if (arr[0] < arr[i])
//		{
//			max = arr[i];//如果遇到大于这个的数，就更新这个值。
//		}
//	}
//	printf("%d\n", max);
//	return 0;
//}


//struct Stu
//{
//	char name[20];//名字
//	int age;//年龄
//	float high;//身高
//	float weight;//体重
//	char id[16];//学号
//}s1, s2, s3;
//struct Stu s6;
//#include <stdio.h>
//int main()
//{
//	struct Stu s4 = {"zhangsan", 20, 175.f, 75.f, "20230128"};//初始化
//	//按照自己想要的顺序初始化
//	struct Stu s5 = {.age = 19, .high = 180.f, .id ="20230129", .name ="lisi", .weight = 80.f};
//	return 0;
//}
//s1,s2,s3,s6,都是结构体变量，是全局的
//s4,s5,也都是结构体变量，是局部的


//struct a
//{
//	int x;
//	int y;
//};
//
//struct b
//{
//	struct a m;
//	char c;
//	float f;
//};
//#include <stdio.h>
//int main()
//{
//	struct b i = { {10,20},'i',10.5f };//结构体嵌套初始化
//	printf("%d %d\n", i.m.x, i.m.y);
//}


//char a, b, c;
//a = b + c;
//b和c的值被提升为普通整型，然后再执⾏加法运算。
//加法运算完成之后，结果将被截断，然后再存储于a中。

//负数的整形提升
//char c1 = -1;
//变量c1的⼆进制位(补码)中只有8个⽐特位：
//1111111
//因为 char 为有符号的 char（大部分编译器是都是认为char是signed char）
//所以整形提升的时候，⾼位补充符号位，即为1
//提升之后的结果是：
//11111111111111111111111111111111

//正数的整形提升
//char c2 = 1;
//变量c2的⼆进制位(补码)中只有8个⽐特位：
//00000001
//因为 char 为有符号的 char（大部分编译器是都是认为char是signed char）
//所以整形提升的时候，⾼位补充符号位，即为0
//提升之后的结果是：
//00000000000000000000000000000001
 

//#include <stdio.h>
//int main()
//{
//	int a = 10;
//	int* pa = &a;
//	//printf("%p\n", pa);
//	*pa = 0;
//	printf("%d\n", a);
//	return 0;
//}


//#include <stdio.h>
//int main()
//{
//	printf("%zd\n", sizeof(char*));
//	printf("%zd\n", sizeof(short*));
//	printf("%zd\n", sizeof(int*));
//	printf("%zd\n", sizeof(double*));
//	return 0;
//}
